package mybox.engine.rundfeder;

import mybox.engine.Figur;
import mybox.engine.File4Qcad;
import mybox.engine.QVector;
import mybox.engine.RandLinieOO;
import mybox.engine.Rectangle;

public class RundWrapAussen implements Figur{
	
	
	File4Qcad file4qcad;
	QVector start;	
	
	double laenge;
	double glattLaenge;
	double breite; 
	double glattBreite;
	double hoehe;
	
	double seitenAbschluss;
	double federDicke;
	int anzahlSektoren;
	
	double materialDicke;
	double zinkungsFaktor;
	double laserBreite;
	
	double obenRand=1;
	double untenRand=2;
	
	Rundfeder[] rundFeder = new Rundfeder[4];
	Rectangle[] onRect = new Rectangle[4];
	
	RandLinieOO[] perforationObenL = new RandLinieOO[4]; 
	RandLinieOO[] perforationUntenL = new RandLinieOO[4]; 
	RandLinieOO[] perforationObenR = new RandLinieOO[4]; 
	RandLinieOO[] perforationUntenR = new RandLinieOO[4]; 
	
	public RundWrapAussen(
			File4Qcad file4qcad, 
			QVector start, 
			double laenge, 
			double breite, 
			double hoehe,			
			double seitenAbschluss,
			double federDicke,
			int anzahlSektoren,
			
			double materialDicke,			
			double laserBreite,
			double zinkungsFaktor
			) {
		this.file4qcad=file4qcad;
		this.start=start;
		this.laenge=laenge;
		this.glattLaenge=RundTopInnen.glattValue(laenge, federDicke*2, anzahlSektoren);		
		this.breite=breite;
		this.glattBreite=RundTopInnen.glattValue(breite, federDicke*2, anzahlSektoren);
		this.hoehe=hoehe;
		this.seitenAbschluss=seitenAbschluss;
		this.federDicke=federDicke;
		this.anzahlSektoren=anzahlSektoren;
		this.materialDicke=materialDicke;
		this.zinkungsFaktor=zinkungsFaktor;
		this.laserBreite=laserBreite;
	}
	
	
	

	@Override
	public void draw() {
		
		rundFeder[0] = new Rundfeder(file4qcad, start, hoehe,seitenAbschluss,federDicke,anzahlSektoren);
				
		onRect[0] = new Rectangle(file4qcad,
				new QVector(rundFeder[0].linksObenStart.x-glattLaenge+federDicke,rundFeder[0].linksObenStart.y-hoehe),
				new QVector(rundFeder[0].rechtsUntenEnd.x+glattBreite,rundFeder[0].rechtsUntenEnd.y+hoehe)
				);
		
	
		perforationObenL[0] = new RandLinieOO(
				file4qcad,
				new QVector(rundFeder[0].linksObenStart.x-glattLaenge+federDicke,
						rundFeder[0].linksObenStart.y-obenRand-materialDicke),
				0.0,
				glattLaenge,			
				materialDicke,
				zinkungsFaktor,
				laserBreite,
				false,//=isGlatt,
				false,//=isRand,
				true,//=isFemale,
				false//=hasRandVerkuerzt				
				);
		
		perforationUntenL[0] = new RandLinieOO(
				file4qcad,
				new QVector(rundFeder[0].linksObenStart.x-glattLaenge+federDicke,
						rundFeder[0].linksObenStart.y+untenRand-hoehe),
				0.0,
				glattLaenge,			
				materialDicke,
				zinkungsFaktor,
				laserBreite,
				false,//=isGlatt,
				false,//=isRand,
				true,//=isFemale,
				false//=hasRandVerkuerzt				
				);
		
		perforationObenR[0] = new RandLinieOO(
				file4qcad,
				new QVector(rundFeder[0].rechtsUntenEnd.x,
						rundFeder[0].rechtsUntenEnd.y+hoehe-obenRand-materialDicke),
				0.0,
				glattBreite,			
				materialDicke,
				zinkungsFaktor,
				laserBreite,
				false,//=isGlatt,
				false,//=isRand,
				true,//=isFemale,
				false//=hasRandVerkuerzt				
				);
		
		perforationUntenR[0] = new RandLinieOO(
				file4qcad,
				new QVector(rundFeder[0].rechtsUntenEnd.x,
						rundFeder[0].rechtsUntenEnd.y+untenRand),
				0.0,
				glattBreite,			
				materialDicke,
				zinkungsFaktor,
				laserBreite,
				false,//=isGlatt,
				false,//=isRand,
				true,//=isFemale,
				false//=hasRandVerkuerzt				
				);
		
		rundFeder[0].draw();
		onRect[0].draw();
		perforationObenL[0].draw();
		perforationUntenL[0].draw();
		perforationObenR[0].draw();
		perforationUntenR[0].draw();

		
	}

}
